{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-22T21:02:30.277387Z",
     "start_time": "2019-08-22T21:02:30.274963Z"
    }
   },
   "outputs": [],
   "source": [
    "import os\n",
    "\n",
    "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"6\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-22T21:02:32.193411Z",
     "start_time": "2019-08-22T21:02:30.278974Z"
    }
   },
   "outputs": [],
   "source": [
    "%reload_ext autoreload\n",
    "%autoreload 2\n",
    "%matplotlib inline\n",
    "import torch\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import style\n",
    "import seaborn as sns\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "from joblib import load, dump\n",
    "from sklearn.metrics import cohen_kappa_score\n",
    "from sklearn.metrics import confusion_matrix\n",
    "from fastai import *\n",
    "from fastai.vision import *\n",
    "from fastai.callbacks import *\n",
    "from torchvision import models as md\n",
    "from torch import nn\n",
    "from torch.nn import functional as F\n",
    "import re\n",
    "import math\n",
    "import collections\n",
    "from functools import partial\n",
    "from torch.utils import model_zoo\n",
    "from sklearn import metrics\n",
    "from collections import Counter\n",
    "import json\n",
    "from efficientnet_pytorch import EfficientNet\n",
    "from utils import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-22T21:02:32.217013Z",
     "start_time": "2019-08-22T21:02:32.195128Z"
    }
   },
   "outputs": [],
   "source": [
    "import random\n",
    "\n",
    "def seed_everything(seed):\n",
    "    random.seed(seed)\n",
    "    os.environ['PYTHONHASHSEED'] = str(seed)\n",
    "    np.random.seed(seed)\n",
    "    torch.manual_seed(seed)\n",
    "    torch.cuda.manual_seed(seed)\n",
    "    torch.backends.cudnn.deterministic = True\n",
    "SEED = 2019\n",
    "seed_everything(SEED)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-22T21:02:32.237650Z",
     "start_time": "2019-08-22T21:02:32.218518Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0901_16-45-51\n"
     ]
    }
   ],
   "source": [
    "current_time = get_BJ_time()\n",
    "print(current_time)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Reading data and Basic EDA(Exploratory Data Analysis)\n",
    "\n",
    "Here I am going to open the dataset with pandas, check distribution of labels."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-22T21:02:32.278960Z",
     "start_time": "2019-08-22T21:02:32.239570Z"
    }
   },
   "outputs": [],
   "source": [
    "df_2019_cv = pd.read_csv('../input/aptos-data-split/df_2019_cv.csv')\n",
    "\n",
    "test_df = pd.read_csv('../input/aptos2019-blindness-detection/sample_submission.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-22T21:02:32.300377Z",
     "start_time": "2019-08-22T21:02:32.280533Z"
    }
   },
   "outputs": [],
   "source": [
    "bs = 32 #smaller batch size is better for training, but may take longer\n",
    "sz = 256  # get model input size\n",
    "# sz = EfficientNet.get_image_size(model_name)  # get model input size\n",
    "tfms = get_transforms(do_flip=True,flip_vert=True, max_rotate=0, max_zoom=1.2, max_warp=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Training (Transfer learning)\n",
    "The Kaggle competition used the Cohen's quadratically weighted kappa so I have that here to compare. This is a better metric when dealing with imbalanced datasets like this one, and for measuring inter-rater agreement for categorical classification (the raters being the human-labeled dataset and the neural network predictions). Here is an implementation based on the scikit-learn's implementation, but converted to a pytorch tensor, as that is what fastai uses."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-22T21:02:32.323043Z",
     "start_time": "2019-08-22T21:02:32.301778Z"
    }
   },
   "outputs": [],
   "source": [
    "def qk(y_pred, y):\n",
    "    return torch.tensor(cohen_kappa_score(torch.round(y_pred), y, weights='quadratic'), device='cuda:0')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fold 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loaded pretrained weights for efficientnet-b3\n",
      "Reload stage1 model\n"
     ]
    }
   ],
   "source": [
    "data1 = (ImageList.from_df(df=df_2019_cv,path='../input/aptos2019-blindness-detection',cols='id_code', folder='train_images_ben_preprocessing_sigmaX10', suffix='.png')\n",
    "        .split_from_df(\"is_valid1\")\n",
    "        .label_from_df(cols='diagnosis',label_cls=FloatList) \n",
    "        .transform(tfms,size=sz,resize_method=ResizeMethod.SQUISH,padding_mode='zeros') \n",
    "        .databunch(bs=bs,num_workers=4) \n",
    "        .normalize(imagenet_stats)  \n",
    "       )\n",
    "\n",
    "model_name = 'efficientnet-b3'\n",
    "model = EfficientNet.from_pretrained(model_name, num_classes=1)\n",
    "\n",
    "learn = Learner(data1, \n",
    "                model, \n",
    "                path = \".\",\n",
    "                metrics = [qk],\n",
    "                callback_fns=[partial(EarlyStoppingCallback, min_delta=0, patience=3)],\n",
    "                model_dir = '../output/models/')\n",
    "\n",
    "learn.data.add_test(ImageList.from_df(test_df,\n",
    "                                      '../input/aptos2019-blindness-detection',\n",
    "                                      folder='test_images_ben_preprocessing_sigmaX10',\n",
    "                                      suffix='.png'))\n",
    "\n",
    "learn.load(\"efficientnet-b3_0901_03-31-49_stage1\")\n",
    "print(\"Reload stage1 model\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T16:21:12.025494Z",
     "start_time": "2019-08-19T16:20:54.058519Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n",
      "Min numerical gradient: 6.31E-07\n",
      "Min loss divided by 10: 7.59E-08\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Explore lr from `start_lr` to `end_lr` over `num_it` iterations in `learn`. If `stop_div`, stops when loss diverges.\n",
    "learn.lr_find() \n",
    "learn.recorder.plot(suggestion=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T16:12:44.277921Z",
     "start_time": "2019-08-19T16:09:50.007469Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='4' class='' max='40', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      10.00% [4/40 01:38<14:48]\n",
       "    </div>\n",
       "    \n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>qk</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.174309</td>\n",
       "      <td>0.215754</td>\n",
       "      <td>0.914902</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>0.194766</td>\n",
       "      <td>0.217427</td>\n",
       "      <td>0.910209</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0.189688</td>\n",
       "      <td>0.218218</td>\n",
       "      <td>0.911894</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>0.201021</td>\n",
       "      <td>0.218246</td>\n",
       "      <td>0.910874</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table><p>\n",
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='23' class='' max='23', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      100.00% [23/23 00:03<00:00]\n",
       "    </div>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 0 with valid_loss value: 0.21575413644313812.\n",
      "Epoch 4: early stopping\n",
      "Model save as: efficientnet-b3_0901_16-45-51_stage2_f1\n"
     ]
    }
   ],
   "source": [
    "model_save_name = \"{}_{}_stage2_f1\".format(model_name, current_time)\n",
    "min_grad_lr = learn.recorder.min_grad_lr\n",
    "learn.fit_one_cycle(40, min_grad_lr, callbacks=[SaveModelCallback(learn, every='improvement', name=model_save_name)])\n",
    "print(\"Model save as:\", model_save_name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T16:12:44.701169Z",
     "start_time": "2019-08-19T16:12:44.281688Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn.recorder.plot_losses()\n",
    "learn.recorder.plot_metrics()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T16:12:46.125062Z",
     "start_time": "2019-08-19T16:12:44.702952Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Reload efficientnet-b3_0901_16-45-51_stage2_f1\n"
     ]
    }
   ],
   "source": [
    "learn.load(model_save_name)\n",
    "print(\"Reload\", model_save_name)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fold 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T16:57:28.321453Z",
     "start_time": "2019-08-19T16:57:24.966613Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loaded pretrained weights for efficientnet-b3\n",
      "Reload stage1 model\n"
     ]
    }
   ],
   "source": [
    "data1 = (ImageList.from_df(df=df_2019_cv,path='../input/aptos2019-blindness-detection',cols='id_code', folder='train_images_ben_preprocessing_sigmaX10', suffix='.png')\n",
    "        .split_from_df(\"is_valid2\")\n",
    "        .label_from_df(cols='diagnosis',label_cls=FloatList) \n",
    "        .transform(tfms,size=sz,resize_method=ResizeMethod.SQUISH,padding_mode='zeros') \n",
    "        .databunch(bs=bs,num_workers=4) \n",
    "        .normalize(imagenet_stats)  \n",
    "       )\n",
    "\n",
    "model_name = 'efficientnet-b3'\n",
    "model = EfficientNet.from_pretrained(model_name, num_classes=1)\n",
    "\n",
    "learn = Learner(data1, \n",
    "                model, \n",
    "                path = \".\",\n",
    "                metrics = [qk],\n",
    "                callback_fns=[partial(EarlyStoppingCallback, min_delta=0, patience=3)],\n",
    "                model_dir = '../output/models/')\n",
    "\n",
    "learn.data.add_test(ImageList.from_df(test_df,\n",
    "                                      '../input/aptos2019-blindness-detection',\n",
    "                                      folder='test_images_ben_preprocessing_sigmaX10',\n",
    "                                      suffix='.png'))\n",
    "\n",
    "learn.load(\"efficientnet-b3_0901_03-31-49_stage1\")\n",
    "print(\"Reload stage1 model\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T17:05:04.464476Z",
     "start_time": "2019-08-19T17:04:47.188787Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n",
      "Min numerical gradient: 6.31E-07\n",
      "Min loss divided by 10: 6.92E-07\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Explore lr from `start_lr` to `end_lr` over `num_it` iterations in `learn`. If `stop_div`, stops when loss diverges.\n",
    "learn.lr_find() \n",
    "learn.recorder.plot(suggestion=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T17:13:27.244471Z",
     "start_time": "2019-08-19T17:11:22.941457Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='4' class='' max='40', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      10.00% [4/40 01:38<14:49]\n",
       "    </div>\n",
       "    \n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>qk</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.181005</td>\n",
       "      <td>0.200695</td>\n",
       "      <td>0.901204</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>0.179247</td>\n",
       "      <td>0.201257</td>\n",
       "      <td>0.901269</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0.176989</td>\n",
       "      <td>0.201248</td>\n",
       "      <td>0.900760</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>0.176912</td>\n",
       "      <td>0.200754</td>\n",
       "      <td>0.901269</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table><p>\n",
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='23' class='' max='23', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      100.00% [23/23 00:03<00:00]\n",
       "    </div>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 0 with valid_loss value: 0.20069479942321777.\n",
      "Epoch 4: early stopping\n",
      "Model save as: efficientnet-b3_0901_16-45-51_stage2_f2\n"
     ]
    }
   ],
   "source": [
    "model_save_name = \"{}_{}_stage2_f2\".format(model_name, current_time)\n",
    "min_grad_lr = learn.recorder.min_grad_lr\n",
    "learn.fit_one_cycle(40, 3e-6, callbacks=[SaveModelCallback(learn, every='improvement', name=model_save_name)])\n",
    "print(\"Model save as:\", model_save_name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T17:13:27.661103Z",
     "start_time": "2019-08-19T17:13:27.246128Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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BhG5RUQuAhCRE0WkFLgcuFdENti7fwY4HbhGRNbYP7MSUc7M1CT+9+yJnDAmL+x1DRZKKdUmofMsjDEvAi9GvHZTyOPlWM1Tkfv9E/hnIssWKTIXlNejzVBKKeXQ22ebRO2PV0opBRosXGnJeiqUUpYzzjij3QS7O++8k+uvv77DfbKysgDYv38/l112WYfHXbFiRae/+84776SxsdF9fv7554cNve0teoW05Wak8Pp3F/R2MZRSfcCVV17J448/Hvba448/zpVXXhlz3+HDh/PUU08d8e+ODBYvvvgiubkJS2ARNw0WIYoLMmNvpJTq9y677DJeeOEFWlpaACgpKWH//v3MmjWLs846izlz5jB9+nSee+65dvuWlJQwbdo0AJqamli0aBEzZszgiiuuoKmpyd3u61//upva/OabbwbgT3/6E/v372fhwoUsXLgQgOLiYg4dOgTAHXfcwbRp05g2bRp33nmn+/smT57MV77yFaZOnco555wT9nu6i6YoD+HRTm2l+p6XboSDH3XvMYdNh/Nu6/DtgoIC5s2bx8svv8zFF1/M448/zhVXXEF6ejrPPPMMOTk5HDp0iPnz53PRRRd1uGTp3XffTUZGBuvWrWPdunXMmTPHfe/WW28lPz+fQCDAWWedxbp16/jWt77FHXfcwdKlSxk8eHDYsVauXMmDDz7IBx98gDGGk046iQULFpCXl8e2bdt47LHHuP/++/nMZz7D008/zdVXX90958qmNQullIoitCnKaYIyxvCjH/2IGTNmcPbZZ7Nv3z7Kyso6PMabb77pXrRnzJjBjBkz3PeeeOIJ5syZw+zZs9mwYUPU1Oah3n77bS655BIyMzPJysri0ksv5a233gJg7NixzJplzS5IVAp0rVkopfq2TmoAifSpT32KG264gVWrVtHU1MScOXN46KGHqKioYOXKlSQnJ1NcXBw1JXmoaLWOXbt28bvf/Y7ly5eTl5fHNddcE/M4xnScLSk1NdV97PV6E9IMpTULpZSKIisrizPOOIMvfvGLbsd2TU0NQ4YMITk5maVLl7J79+5Oj3H66afzyCOPALB+/XrWrVsHWKnNMzMzGTRoEGVlZbz00kvuPtnZ2dTV1UU91rPPPktjYyMNDQ0888wznHbaad31cWPSmoVSSnXgyiuv5NJLL3Wbo6666iouvPBC5s6dy6xZs5g0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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn.recorder.plot_losses()\n",
    "learn.recorder.plot_metrics()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T17:13:29.331857Z",
     "start_time": "2019-08-19T17:13:27.663000Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Reload efficientnet-b3_0901_16-45-51_stage2_f2\n"
     ]
    }
   ],
   "source": [
    "learn.load(model_save_name)\n",
    "print(\"Reload\", model_save_name)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fold 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T17:17:48.601941Z",
     "start_time": "2019-08-19T17:17:45.643070Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loaded pretrained weights for efficientnet-b3\n",
      "Reload stage1 model\n"
     ]
    }
   ],
   "source": [
    "data1 = (ImageList.from_df(df=df_2019_cv,path='../input/aptos2019-blindness-detection',cols='id_code', folder='train_images_ben_preprocessing_sigmaX10', suffix='.png')\n",
    "        .split_from_df(\"is_valid3\")\n",
    "        .label_from_df(cols='diagnosis',label_cls=FloatList) \n",
    "        .transform(tfms,size=sz,resize_method=ResizeMethod.SQUISH,padding_mode='zeros') \n",
    "        .databunch(bs=bs,num_workers=4) \n",
    "        .normalize(imagenet_stats)  \n",
    "       )\n",
    "\n",
    "model_name = 'efficientnet-b3'\n",
    "model = EfficientNet.from_pretrained(model_name, num_classes=1)\n",
    "\n",
    "learn = Learner(data1, \n",
    "                model, \n",
    "                path = \".\",\n",
    "                metrics = [qk],\n",
    "                callback_fns=[partial(EarlyStoppingCallback, min_delta=0, patience=3)],\n",
    "                model_dir = '../output/models/')\n",
    "\n",
    "learn.data.add_test(ImageList.from_df(test_df,\n",
    "                                      '../input/aptos2019-blindness-detection',\n",
    "                                      folder='test_images_ben_preprocessing_sigmaX10',\n",
    "                                      suffix='.png'))\n",
    "\n",
    "learn.load(\"efficientnet-b3_0901_03-31-49_stage1\")\n",
    "print(\"Reload stage1 model\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T17:30:29.948225Z",
     "start_time": "2019-08-19T17:30:11.552954Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n",
      "Min numerical gradient: 6.31E-07\n",
      "Min loss divided by 10: 3.02E-06\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Explore lr from `start_lr` to `end_lr` over `num_it` iterations in `learn`. If `stop_div`, stops when loss diverges.\n",
    "learn.lr_find() \n",
    "learn.recorder.plot(suggestion=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T17:34:45.630906Z",
     "start_time": "2019-08-19T17:31:51.659625Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='11' class='' max='40', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      27.50% [11/40 04:30<11:53]\n",
       "    </div>\n",
       "    \n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>qk</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.161738</td>\n",
       "      <td>0.213493</td>\n",
       "      <td>0.880151</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>0.155326</td>\n",
       "      <td>0.213302</td>\n",
       "      <td>0.879846</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0.169742</td>\n",
       "      <td>0.213150</td>\n",
       "      <td>0.880157</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>0.172757</td>\n",
       "      <td>0.213149</td>\n",
       "      <td>0.880473</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>0.178864</td>\n",
       "      <td>0.213601</td>\n",
       "      <td>0.880193</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>0.170515</td>\n",
       "      <td>0.213141</td>\n",
       "      <td>0.880022</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>0.163400</td>\n",
       "      <td>0.213163</td>\n",
       "      <td>0.880022</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>0.172573</td>\n",
       "      <td>0.212913</td>\n",
       "      <td>0.881305</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>8</td>\n",
       "      <td>0.169627</td>\n",
       "      <td>0.213014</td>\n",
       "      <td>0.881305</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>9</td>\n",
       "      <td>0.161224</td>\n",
       "      <td>0.213022</td>\n",
       "      <td>0.881305</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>10</td>\n",
       "      <td>0.171676</td>\n",
       "      <td>0.213330</td>\n",
       "      <td>0.881556</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table><p>\n",
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='23' class='' max='23', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      100.00% [23/23 00:03<00:00]\n",
       "    </div>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 0 with valid_loss value: 0.213493213057518.\n",
      "Better model found at epoch 1 with valid_loss value: 0.21330159902572632.\n",
      "Better model found at epoch 2 with valid_loss value: 0.213149756193161.\n",
      "Better model found at epoch 3 with valid_loss value: 0.21314914524555206.\n",
      "Better model found at epoch 5 with valid_loss value: 0.21314121782779694.\n",
      "Better model found at epoch 7 with valid_loss value: 0.21291275322437286.\n",
      "Epoch 11: early stopping\n",
      "Model save as: efficientnet-b3_0901_16-45-51_stage2_f3\n"
     ]
    }
   ],
   "source": [
    "model_save_name = \"{}_{}_stage2_f3\".format(model_name, current_time)\n",
    "# min_grad_lr = learn.recorder.min_grad_lr\n",
    "learn.fit_one_cycle(40, 2e-6, callbacks=[SaveModelCallback(learn, every='improvement', name=model_save_name)])\n",
    "print(\"Model save as:\", model_save_name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T17:34:46.031200Z",
     "start_time": "2019-08-19T17:34:45.633026Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn.recorder.plot_losses()\n",
    "learn.recorder.plot_metrics()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T17:34:47.893507Z",
     "start_time": "2019-08-19T17:34:46.032943Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Reload efficientnet-b3_0901_16-45-51_stage2_f3\n"
     ]
    }
   ],
   "source": [
    "learn.load(model_save_name)\n",
    "print(\"Reload\", model_save_name)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fold 4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T19:36:29.579081Z",
     "start_time": "2019-08-19T19:36:26.520306Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loaded pretrained weights for efficientnet-b3\n",
      "Reload stage1 model\n"
     ]
    }
   ],
   "source": [
    "data1 = (ImageList.from_df(df=df_2019_cv,path='../input/aptos2019-blindness-detection',cols='id_code', folder='train_images_ben_preprocessing_sigmaX10', suffix='.png')\n",
    "        .split_from_df(\"is_valid4\")\n",
    "        .label_from_df(cols='diagnosis',label_cls=FloatList) \n",
    "        .transform(tfms,size=sz,resize_method=ResizeMethod.SQUISH,padding_mode='zeros') \n",
    "        .databunch(bs=bs,num_workers=4) \n",
    "        .normalize(imagenet_stats)  \n",
    "       )\n",
    "\n",
    "model_name = 'efficientnet-b3'\n",
    "model = EfficientNet.from_pretrained(model_name, num_classes=1)\n",
    "\n",
    "learn = Learner(data1, \n",
    "                model, \n",
    "                path = \".\",\n",
    "                metrics = [qk],\n",
    "                callback_fns=[partial(EarlyStoppingCallback, min_delta=0, patience=3)],\n",
    "                model_dir = '../output/models/')\n",
    "\n",
    "learn.data.add_test(ImageList.from_df(test_df,\n",
    "                                      '../input/aptos2019-blindness-detection',\n",
    "                                      folder='test_images_ben_preprocessing_sigmaX10',\n",
    "                                      suffix='.png'))\n",
    "\n",
    "learn.load(\"efficientnet-b3_0901_03-31-49_stage1\")\n",
    "print(\"Reload stage1 model\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T20:20:53.297932Z",
     "start_time": "2019-08-19T20:20:35.690819Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n",
      "Min numerical gradient: 1.32E-06\n",
      "Min loss divided by 10: 5.75E-07\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Explore lr from `start_lr` to `end_lr` over `num_it` iterations in `learn`. If `stop_div`, stops when loss diverges.\n",
    "learn.lr_find() \n",
    "learn.recorder.plot(suggestion=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T20:24:50.359881Z",
     "start_time": "2019-08-19T20:22:20.455117Z"
    },
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "model_save_name = \"{}_{}_stage2_f4\".format(model_name, current_time)\n",
    "# min_grad_lr = learn.recorder.min_grad_lr\n",
    "learn.fit_one_cycle(40, 1e-6, callbacks=[SaveModelCallback(learn, every='improvement', name=model_save_name)])\n",
    "print(\"Model save as:\", model_save_name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.2066468, tensor(0.9023)]"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn.validate()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T20:24:50.769649Z",
     "start_time": "2019-08-19T20:24:50.361520Z"
    },
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "learn.recorder.plot_losses()\n",
    "learn.recorder.plot_metrics()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T20:24:52.412438Z",
     "start_time": "2019-08-19T20:24:50.771700Z"
    },
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "learn.load(model_save_name)\n",
    "print(\"Reload\", model_save_name)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fold 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T21:48:41.596383Z",
     "start_time": "2019-08-19T21:48:33.642633Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loaded pretrained weights for efficientnet-b3\n",
      "Reload stage1 model\n"
     ]
    }
   ],
   "source": [
    "data1 = (ImageList.from_df(df=df_2019_cv,path='../input/aptos2019-blindness-detection',cols='id_code', folder='train_images_ben_preprocessing_sigmaX10', suffix='.png')\n",
    "        .split_from_df(\"is_valid5\")\n",
    "        .label_from_df(cols='diagnosis',label_cls=FloatList) \n",
    "        .transform(tfms,size=sz,resize_method=ResizeMethod.SQUISH,padding_mode='zeros') \n",
    "        .databunch(bs=bs,num_workers=4) \n",
    "        .normalize(imagenet_stats)  \n",
    "       )\n",
    "\n",
    "model_name = 'efficientnet-b3'\n",
    "model = EfficientNet.from_pretrained(model_name, num_classes=1)\n",
    "\n",
    "learn = Learner(data1, \n",
    "                model, \n",
    "                path = \".\",\n",
    "                metrics = [qk],\n",
    "                callback_fns=[partial(EarlyStoppingCallback, min_delta=0, patience=3)],\n",
    "                model_dir = '../output/models/')\n",
    "\n",
    "learn.data.add_test(ImageList.from_df(test_df,\n",
    "                                      '../input/aptos2019-blindness-detection',\n",
    "                                      folder='test_images_ben_preprocessing_sigmaX10',\n",
    "                                      suffix='.png'))\n",
    "\n",
    "learn.load(\"efficientnet-b3_0901_03-31-49_stage1\")\n",
    "print(\"Reload stage1 model\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T22:00:43.956880Z",
     "start_time": "2019-08-19T22:00:26.694282Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n",
      "Min numerical gradient: 2.29E-04\n",
      "Min loss divided by 10: 6.31E-08\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Explore lr from `start_lr` to `end_lr` over `num_it` iterations in `learn`. If `stop_div`, stops when loss diverges.\n",
    "learn.lr_find() \n",
    "learn.recorder.plot(suggestion=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T22:03:49.104171Z",
     "start_time": "2019-08-19T22:01:20.026906Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='4' class='' max='40', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      10.00% [4/40 01:38<14:43]\n",
       "    </div>\n",
       "    \n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>qk</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.183477</td>\n",
       "      <td>0.223962</td>\n",
       "      <td>0.880458</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>0.171524</td>\n",
       "      <td>0.225067</td>\n",
       "      <td>0.880458</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0.183778</td>\n",
       "      <td>0.225605</td>\n",
       "      <td>0.882283</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>0.178163</td>\n",
       "      <td>0.226107</td>\n",
       "      <td>0.882056</td>\n",
       "      <td>00:24</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table><p>\n",
       "\n",
       "    <div>\n",
       "        <style>\n",
       "            /* Turns off some styling */\n",
       "            progress {\n",
       "                /* gets rid of default border in Firefox and Opera. */\n",
       "                border: none;\n",
       "                /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "                background-size: auto;\n",
       "            }\n",
       "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "                background: #F44336;\n",
       "            }\n",
       "        </style>\n",
       "      <progress value='23' class='' max='23', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      100.00% [23/23 00:03<00:00]\n",
       "    </div>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 0 with valid_loss value: 0.22396241128444672.\n",
      "Epoch 4: early stopping\n",
      "Model save as: efficientnet-b3_0901_16-45-51_stage2_f5\n"
     ]
    }
   ],
   "source": [
    "model_save_name = \"{}_{}_stage2_f5\".format(model_name, current_time)\n",
    "# min_grad_lr = learn.recorder.min_grad_lr\n",
    "learn.fit_one_cycle(40, 1e-6, callbacks=[SaveModelCallback(learn, every='improvement', name=model_save_name)])\n",
    "print(\"Model save as:\", model_save_name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T22:03:49.518520Z",
     "start_time": "2019-08-19T22:03:49.106070Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn.recorder.plot_losses()\n",
    "learn.recorder.plot_metrics()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T22:03:51.569284Z",
     "start_time": "2019-08-19T22:03:49.520214Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Reload efficientnet-b3_0901_16-45-51_stage2_f5\n"
     ]
    }
   ],
   "source": [
    "learn.load(model_save_name)\n",
    "print(\"Reload\", model_save_name)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Submission"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T16:51:10.929998Z",
     "start_time": "2019-08-19T16:51:10.901336Z"
    }
   },
   "source": [
    "## Fold 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T16:51:06.232434Z",
     "start_time": "2019-08-19T16:50:57.821621Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "efficientnet-b3_0901_16-45-51_stage2_f1.csv done\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7fb5fdbbb978>]], dtype=object)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "preds,y = learn.get_preds(DatasetType.Test)\n",
    "tst_pred = np.round(preds.numpy())\n",
    "test_df.diagnosis = tst_pred.astype(int)\n",
    "save_filename = '../output/submission/{}.csv'.format(model_save_name)\n",
    "test_df.to_csv(save_filename,index=False)\n",
    "print (save_filename, 'done')\n",
    "test_df.hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T16:51:10.929998Z",
     "start_time": "2019-08-19T16:51:10.901336Z"
    }
   },
   "source": [
    "## Fold 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T17:16:14.569341Z",
     "start_time": "2019-08-19T17:16:05.910901Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "efficientnet-b3_0901_16-45-51_stage2_f2.csv done\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7fb5ccd055f8>]], dtype=object)"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAEICAYAAABWJCMKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAFW5JREFUeJzt3X+0XWV95/H3p4QfaixBsCkmqXGW1JaBqYU7SOu068Z0VX5Ysa1M6VAJLDpZM6MVR7uG1LVmqG3XDHZJ/cHM0hWFEZUaEJ2GAo5lkIxjZ2Q0SgmYWoJlMECJGIhGsRr9zh9nR28vN7n3nHPvOTd53q+17rp7P/vZ+/neJ3efz937/EiqCklSe35k3AVIksbDAJCkRhkAktQoA0CSGmUASFKjDABJapQBoMNakvcn+aMkv5DkS+Ou50CSvDnJ+8Zdh9qyZNwFSKNQVf8LeNG46ziQqvqP465B7fEKQJIaZQDosJLkZ5N8Psk3ktwAHNO1TybZOaXfhiQPdP2+mORXp2w7IslVSR5P8rdJXpekkizptm9J8odJ/rLb/y+SnDBl/1cmuS/Jk13fn56y7fIkD3f7fSnJ2q7995N8qFs+JsmHknytO8Znkyxf8MlTcwwAHTaSHAX8GfBB4DnAR4BfP0D3B4BfAI4F3gJ8KMmJ3bZ/CZwNvBg4DXjVDPv/C+AS4MeAo4Df7Wr4SeDDwBuA5wK3AX+e5KgkLwJeB/zTqno28HLgwRmOva6raxVwPPCvgKfmMgdSPwwAHU7OBI4E3lFV362qm4DPztSxqj5SVY9U1fer6gbgfuCMbvM/B95ZVTur6gngyhkO8V+r6m+q6ingRnphAfAbwK1VdXtVfRd4G/AM4OeB7wFHAycnObKqHqyqB2Y49nfpPfC/sKq+V1Vbq+rr/U+HdHAGgA4nzwMern/4CYf/b6aOSS5Kcnd3i+VJ4BRg/22c5wFfmdL9K087APzdlOVvAUun7PuDMavq+93+K6pqB70rg98HdiXZlOR5Mxz7g8AngE1JHknyx0mOnPEnloZgAOhw8iiwIkmmtP3E9E5Jng+8l97tmOOrahlwL7B/v0eBlVN2WdVHDY8Az58yVrr9Hwaoqj+tqn/W9SngrdMP0F29vKWqTqZ35fAK4KI+apDmxADQ4eT/APuA1ydZkuTX+OFtnameRe/B96sASS6hdwWw343AZUlWJFkGXN5HDTcC5yZZ2/3V/ibg74H/neRFSV6W5Gjg2/Tu639v+gGSrElyapIjgK/TuyX0tH7SsAwAHTaq6jvArwEXA0/Qux//sRn6fRG4il5gPAacCvzllC7vBf4CuAf4Ar0ncvcxhwfhqvoS8FvA1cDjwK8Av9LVdjS95xMep3cL6ceAN89wmB8HbqL34L8d+J/Ah2YbW+pX/A9hpINLcjbwnqp6/qydpUOIVwDSNEmekeSc7jbSCuAK4L+Nuy5pvnkFIE2T5Jn0brv8FL379LcCl/lSTB1uDABJapS3gCSpUYv600BPOOGEWr169cD7f/Ob3+RZz3rW/BU0T6yrP9bVH+vqz+FY19atWx+vqufO2rGqFu3X6aefXsO48847h9p/oVhXf6yrP9bVn8OxLuBzNYfHWG8BSVKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSoxb1R0FIi9m2h/dw8YZbRz7ug1eeO/IxdXjyCkCSGmUASFKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAkNcoAkKRGGQCS1CgDQJIaZQBIUqMMAElq1KwBkOTaJLuS3Dul7TlJbk9yf/f9uK49Sd6VZEeSe5KcNmWfdV3/+5OsW5gfR5I0V3O5Ang/cNa0tg3AHVV1EnBHtw5wNnBS97UeeDf0AgO4AngJcAZwxf7QkCSNx6wBUFWfAnZPaz4PuK5bvg541ZT2D1TPZ4BlSU4EXg7cXlW7q+oJ4HaeHiqSpBFKVc3eKVkN3FJVp3TrT1bVsinbn6iq45LcAlxZVZ/u2u8ALgcmgWOq6o+69n8PPFVVb5thrPX0rh5Yvnz56Zs2bRr4h9u7dy9Lly4deP+FYl39Wax17dq9h8eeGv24p6449qDbF+t8WVd/hqlrzZo1W6tqYrZ+SwY6+oFlhrY6SPvTG6s2AhsBJiYmanJycuBitmzZwjD7LxTr6s9irevq6zdz1bb5PoVm9+CFkwfdvljny7r6M4q6Bn0V0GPdrR2677u69p3Aqin9VgKPHKRdkjQmgwbAzcD+V/KsAzZPab+oezXQmcCeqnoU+ATwy0mO6578/eWuTZI0JrNevyb5ML17+Cck2Unv1TxXAjcmuRR4CDi/634bcA6wA/gWcAlAVe1O8ofAZ7t+f1BV059YliSN0KwBUFW/eYBNa2foW8BrD3Cca4Fr+6pOkrRgfCewJDXKAJCkRhkAktQoA0CSGmUASFKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAkNcoAkKRGGQCS1CgDQJIaZQBIUqMMAElqlAEgSY0yACSpUQaAJDXKAJCkRhkAktSooQIgyb9Ncl+Se5N8OMkxSV6Q5K4k9ye5IclRXd+ju/Ud3fbV8/EDSJIGM3AAJFkBvB6YqKpTgCOAC4C3Am+vqpOAJ4BLu10uBZ6oqhcCb+/6SZLGZNhbQEuAZyRZAjwTeBR4GXBTt/064FXd8nndOt32tUky5PiSpAENHABV9TDwNuAheg/8e4CtwJNVta/rthNY0S2vAL7S7buv63/8oONLkoaTqhpsx+Q44KPAbwBPAh/p1q/obvOQZBVwW1WdmuQ+4OVVtbPb9gBwRlV9bdpx1wPrAZYvX376pk2bBqoPYO/evSxdunTg/ReKdfVnsda1a/ceHntq9OOeuuLYg25frPNlXf0Zpq41a9ZsraqJ2fotGejoPb8E/G1VfRUgyceAnweWJVnS/ZW/Enik678TWAXs7G4ZHQvsnn7QqtoIbASYmJioycnJgQvcsmULw+y/UKyrP4u1rquv38xV24Y5hQbz4IWTB92+WOfLuvozirqGeQ7gIeDMJM/s7uWvBb4I3Am8uuuzDtjcLd/crdNt/2QNevkhSRraMM8B3EXvydzPA9u6Y20ELgfemGQHvXv813S7XAMc37W/EdgwRN2SpCENdf1aVVcAV0xr/jJwxgx9vw2cP8x4kqT54zuBJalRBoAkNcoAkKRGGQCS1CgDQJIaZQBIUqMMAElqlAEgSY0yACSpUQaAJDXKAJCkRhkAktQoA0CSGmUASFKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAkNcoAkKRGGQCS1KihAiDJsiQ3JfnrJNuT/FyS5yS5Pcn93ffjur5J8q4kO5Lck+S0+fkRJEmDGPYK4J3Af6+qnwJ+BtgObADuqKqTgDu6dYCzgZO6r/XAu4ccW5I0hIEDIMmPAr8IXANQVd+pqieB84Drum7XAa/qls8DPlA9nwGWJTlx4MolSUNJVQ22Y/JiYCPwRXp//W8FLgMerqplU/o9UVXHJbkFuLKqPt213wFcXlWfm3bc9fSuEFi+fPnpmzZtGqg+gL1797J06dKB918o1tWfxVrXrt17eOyp0Y976opjD7p9sc6XdfVnmLrWrFmztaomZuu3ZKCj/3Df04Dfqaq7kryTH97umUlmaHta+lTVRnrBwsTERE1OTg5c4JYtWxhm/4ViXf1ZrHVdff1mrto2zCk0mAcvnDzo9sU6X9bVn1HUNcxzADuBnVV1V7d+E71AeGz/rZ3u+64p/VdN2X8l8MgQ40uShjBwAFTV3wFfSfKirmktvdtBNwPrurZ1wOZu+Wbgou7VQGcCe6rq0UHHlyQNZ9jr198Brk9yFPBl4BJ6oXJjkkuBh4Dzu763AecAO4BvdX0lSWMyVABU1d3ATE80rJ2hbwGvHWY8SdL88Z3AktQoA0CSGmUASFKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAkNcoAkKRGGQCS1CgDQJIaZQBIUqMMAElqlAEgSY0yACSpUQaAJDXKAJCkRhkAktQoA0CSGmUASFKjDABJatTQAZDkiCRfSHJLt/6CJHcluT/JDUmO6tqP7tZ3dNtXDzu2JGlw83EFcBmwfcr6W4G3V9VJwBPApV37pcATVfVC4O1dP0nSmAwVAElWAucC7+vWA7wMuKnrch3wqm75vG6dbvvarr8kaQxSVYPvnNwE/Cfg2cDvAhcDn+n+yifJKuDjVXVKknuBs6pqZ7ftAeAlVfX4tGOuB9YDLF++/PRNmzYNXN/evXtZunTpwPsvFOvqz2Kta9fuPTz21OjHPXXFsQfdvljny7r6M0xda9as2VpVE7P1WzLQ0YEkrwB2VdXWJJP7m2foWnPY9sOGqo3ARoCJiYmanJyc3mXOtmzZwjD7LxTr6s9irevq6zdz1baBT6GBPXjh5EG3L9b5sq7+jKKuYX57Xwq8Msk5wDHAjwLvAJYlWVJV+4CVwCNd/53AKmBnkiXAscDuIcaXJA1h4OcAqur3qmplVa0GLgA+WVUXAncCr+66rQM2d8s3d+t02z9Zw9x/kiQNZSHeB3A58MYkO4DjgWu69muA47v2NwIbFmBsSdIczcsNzKraAmzplr8MnDFDn28D58/HeJKk4flOYElqlAEgSY0yACSpUQaAJDXKAJCkRhkAktQoA0CSGmUASFKjDABJapQBIEmNMgAkqVGj/zDzEdr28B4u3nDryMd98MpzRz6mJPXLKwBJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAkNeqw/jC41qwe8oPv3nTqvoE/PM8PwJMOPV4BSFKjDABJapQBIEmNGjgAkqxKcmeS7UnuS3JZ1/6cJLcnub/7flzXniTvSrIjyT1JTpuvH0KS1L9hrgD2AW+qqp8GzgRem+RkYANwR1WdBNzRrQOcDZzUfa0H3j3E2JKkIQ38KqCqehR4tFv+RpLtwArgPGCy63YdsAW4vGv/QFUV8Jkky5Kc2B1H0iFgmFea+SqzxSe9x+MhD5KsBj4FnAI8VFXLpmx7oqqOS3ILcGVVfbprvwO4vKo+N+1Y6+ldIbB8+fLTN23aNHBdu3bv4bGnBt59YKeuOPag2/fu3cvSpUvnfdxtD+8Zav/lz2Dg+ZrtZx7GQs3XsFr7/YLhfsf8/erPMHWtWbNma1VNzNZv6PcBJFkKfBR4Q1V9PckBu87Q9rT0qaqNwEaAiYmJmpycHLi2q6/fzFXbRv9WhwcvnDzo9i1btjDMz3Ugg/51td+bTt038HzN9jMPY6Hma1it/X7BcL9j/n71ZxR1DfUqoCRH0nvwv76qPtY1P5bkxG77icCurn0nsGrK7iuBR4YZX5I0uGFeBRTgGmB7Vf3JlE03A+u65XXA5intF3WvBjoT2OP9f0kan2GuX18KvAbYluTuru3NwJXAjUkuBR4Czu+23QacA+wAvgVcMsTYkqQhDfMqoE8z8319gLUz9C/gtYOOJ0maX74TWJIaZQBIUqMMAElqlAEgSY0yACSpUQaAJDXKAJCkRhkAktQoA0CSGmUASFKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRS8ZdgCQtVqs33Dq2sd9/1rMWfAyvACSpUQaAJDXKAJCkRhkAktQoA0CSGmUASFKjRh4ASc5K8qUkO5JsGPX4kqSekQZAkiOA/wKcDZwM/GaSk0dZgySpZ9RXAGcAO6rqy1X1HWATcN6Ia5AkAamq0Q2WvBo4q6p+u1t/DfCSqnrdlD7rgfXd6ouALw0x5AnA40Psv1Csqz/W1R/r6s/hWNfzq+q5s3Ua9UdBZIa2f5BAVbUR2DgvgyWfq6qJ+TjWfLKu/lhXf6yrPy3XNepbQDuBVVPWVwKPjLgGSRKjD4DPAicleUGSo4ALgJtHXIMkiRHfAqqqfUleB3wCOAK4tqruW8Ah5+VW0gKwrv5YV3+sqz/N1jXSJ4ElSYuH7wSWpEYZAJLUqEM+AGb7aIkkRye5odt+V5LVi6Sui5N8Ncnd3ddvj6iua5PsSnLvAbYnybu6uu9JctoiqWsyyZ4p8/UfRlTXqiR3Jtme5L4kl83QZ+RzNse6Rj5nSY5J8n+T/FVX11tm6DPyc3KOdY3rnDwiyReS3DLDtoWdq6o6ZL/oPZH8APCPgKOAvwJOntbn3wDv6ZYvAG5YJHVdDPznMczZLwKnAfceYPs5wMfpvWfjTOCuRVLXJHDLGObrROC0bvnZwN/M8G858jmbY10jn7NuDpZ2y0cCdwFnTuszjnNyLnWN65x8I/CnM/1bLfRcHepXAHP5aInzgOu65ZuAtUlmekPaqOsai6r6FLD7IF3OAz5QPZ8BliU5cRHUNRZV9WhVfb5b/gawHVgxrdvI52yOdY1cNwd7u9Uju6/przQZ+Tk5x7pGLslK4FzgfQfosqBzdagHwArgK1PWd/L0k+AHfapqH7AHOH4R1AXw690tg5uSrJph+zjMtfZx+LnuEv7jSf7xqAfvLr9/lt5fj1ONdc4OUheMYc66Wxp3A7uA26vqgPM1wnNyLnXB6M/JdwD/Dvj+AbYv6Fwd6gEw60dLzLHPfJvLmH8OrK6qfwL8D36Y8uM2jvmai8/T+3yTnwGuBv5slIMnWQp8FHhDVX19+uYZdhnJnM1S11jmrKq+V1UvpvdO/zOSnDKty1jmaw51jfScTPIKYFdVbT1Ytxna5m2uDvUAmMtHS/ygT5IlwLEs/K2GWeuqqq9V1d93q+8FTl/gmuZqUX5cR1V9ff8lfFXdBhyZ5IRRjJ3kSHoPstdX1cdm6DKWOZutrnHOWTfmk8AW4Kxpm8ZxTs5a1xjOyZcCr0zyIL3bxC9L8qFpfRZ0rg71AJjLR0vcDKzrll8NfLK6Z1TGWde0e8SvpHcPdzG4Gbioe2XLmcCeqnp03EUl+fH99z6TnEHvd/drIxg3wDXA9qr6kwN0G/mczaWuccxZkucmWdYtPwP4JeCvp3Ub+Tk5l7pGfU5W1e9V1cqqWk3vMeKTVfVb07ot6FyN+tNA51Ud4KMlkvwB8LmqupneSfLBJDvoJecFi6Su1yd5JbCvq+viha4LIMmH6b065IQkO4Er6D0hRlW9B7iN3qtadgDfAi5ZJHW9GvjXSfYBTwEXjCDIofdX2muAbd39Y4A3Az8xpbZxzNlc6hrHnJ0IXJfef/70I8CNVXXLuM/JOdY1lnNyulHOlR8FIUmNOtRvAUmSBmQASFKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEb9f+AX5d8kVLcIAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "preds,y = learn.get_preds(DatasetType.Test)\n",
    "tst_pred = np.round(preds.numpy())\n",
    "test_df.diagnosis = tst_pred.astype(int)\n",
    "save_filename = '../output/submission/{}.csv'.format(model_save_name)\n",
    "test_df.to_csv(save_filename,index=False)\n",
    "print (save_filename, 'done')\n",
    "test_df.hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T16:51:10.929998Z",
     "start_time": "2019-08-19T16:51:10.901336Z"
    }
   },
   "source": [
    "## Fold 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T17:55:10.954830Z",
     "start_time": "2019-08-19T17:55:00.302205Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "efficientnet-b3_0901_16-45-51_stage2_f3.csv done\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7fb5fda534a8>]], dtype=object)"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "preds,y = learn.get_preds(DatasetType.Test)\n",
    "tst_pred = np.round(preds.numpy())\n",
    "test_df.diagnosis = tst_pred.astype(int)\n",
    "save_filename = '../output/submission/{}.csv'.format(model_save_name)\n",
    "test_df.to_csv(save_filename,index=False)\n",
    "print (save_filename, 'done')\n",
    "test_df.hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T16:51:10.929998Z",
     "start_time": "2019-08-19T16:51:10.901336Z"
    }
   },
   "source": [
    "## Fold 4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T20:25:41.374066Z",
     "start_time": "2019-08-19T20:25:32.770706Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "efficientnet-b3_0901_16-45-51_stage2_f4.csv done\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7fb5fd9e8a20>]], dtype=object)"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "preds,y = learn.get_preds(DatasetType.Test)\n",
    "tst_pred = np.round(preds.numpy())\n",
    "test_df.diagnosis = tst_pred.astype(int)\n",
    "save_filename = '../output/submission/{}.csv'.format(model_save_name)\n",
    "test_df.to_csv(save_filename,index=False)\n",
    "print (save_filename, 'done')\n",
    "test_df.hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T16:51:10.929998Z",
     "start_time": "2019-08-19T16:51:10.901336Z"
    }
   },
   "source": [
    "## Fold 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-08-19T22:05:12.598885Z",
     "start_time": "2019-08-19T22:05:03.955353Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "../output/submission/efficientnet-b3_0901_16-45-51_stage2_f5.csv done\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7fb5cc87fcc0>]], dtype=object)"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "preds,y = learn.get_preds(DatasetType.Test)\n",
    "tst_pred = np.round(preds.numpy())\n",
    "test_df.diagnosis = tst_pred.astype(int)\n",
    "save_filename = '../output/submission/{}.csv'.format(model_save_name)\n",
    "test_df.to_csv(save_filename,index=False)\n",
    "print (save_filename, 'done')\n",
    "test_df.hist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "256px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
